#pragma once

struct point {
	float x;
	float y;
	float z;

	point(float x, float y, float z) {
		this->x = x;
		this->y = y;
		this->z = z;
	}

	point translatey(float distance) {
		return point(x, y + distance, z);
	}
};

struct circle {
	point center;
	float radius;

	circle(point center, float radius) 
		: center(center.x, center.y, center.z) {
		this->radius = radius;
	}

	circle scale(float factor) {
		return circle(center, radius * factor);
	} 
};

struct cylinder {
	point center;
	float radius;
	float height;

	cylinder(point center, float radius, float height) 
		: center(center.x, center.y, center.z) {
		this->center = center;
		this->radius = radius;
		this->height = height;
	}
};
